package nespresso.servlets;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import static java.lang.System.out;

import nespresso.beans.*;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class CommandeServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Log log; 
	
    public CommandeServlet() {
    	log = LogFactory.getLog(CommandeServlet.class);
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/*
		 * si l'utilisateur tape l'adresse de la servlet directement dans la barre d'adresse, il est renvoyé 
		 * sur la page d'accueil !
		 */
		response.sendRedirect("nespresso.jsp");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession(); // On récupère la session en cours
		request.setCharacterEncoding("UTF-8");
		Enumeration params = request.getParameterNames();
		String nucommande = new String();
		String paramName = new String();
		String action = new String();
		while(params.hasMoreElements()) {
    		paramName = (String)params.nextElement();
    		if(paramName.startsWith("modif")) nucommande = paramName.substring(5); // On est passé par le "crayon"
    		if(paramName.equals("bcommande")) { 
    			action = request.getParameter("bcommande"); // Bouton "Modifier"
    			nucommande = request.getParameter("nCommande");
    		}
		}

		if(action.equals("Nouvelle commande")) {
			session.removeAttribute("commande");
			request.getRequestDispatcher("commandenew.jsp").forward(request, response);
		} else
			if(action.equals("Récapitulatif")) {
				if(!nucommande.equals("NULL")) {
					Commande c = new Commande(nucommande);
					session.setAttribute("commande", c);
					session.setAttribute("RecapMode", "Capsules");
					request.getRequestDispatcher("recapitulatif.jsp").forward(request, response);
				} else {
					request.setAttribute("message", "Aucune commande n'a été sélectionnée !");
					RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher("/commandes.jsp");
					reqDispatcher.forward(request,response);	
				}
			} else
				if(!nucommande.equals("NULL")) {
					// on cherche le user dans la base
					Commande c = new Commande(nucommande);
					session.setAttribute("commande", c);
					request.getRequestDispatcher("lignescommande.jsp").forward(request, response);
				} else {
					request.setAttribute("message", "Aucune commande n'a été sélectionnée !");
					RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher("/commandes.jsp");
					reqDispatcher.forward(request,response);				
				}
	}
}
